Model based techniques may be used for generating tests for verifying the behavior of a computing system. A model includes a set of attributes in addition to values for the attributes and corresponding restrictions on said values or value combinations. The set of valid value combinations defines the space to be tested. In a Cartesian-product based model, the test space is defined as all possible combinations of variable values that are not ruled out by restrictions.
The size of a Cartesian-product based model is the product of the number of values for each attribute (i.e., A1*A2* . . . *An), where An represents the number of valid values for the nth attribute. One would appreciate that the size of the model can become prohibitively large, depending on the number of attributes, the possible number of values assigned to each attribute and the restrictions.